
namespace HumanElement.Xna.Construct
{
    public interface IEntity<TManager> : IEntity 
        where TManager : IEntityManager
    {
        /// <summary>
        /// Gets or sets the manager.
        /// </summary>
        /// <value>The manager.</value>
        ISurfaceManager Manager { get; set; }
    }

    public interface IEntity : IName, IInitialize, IDynamic
    {
        /// <summary>
        /// Gets or sets a value indicating whether this <see cref="IEntity"/> is enabled.
        /// </summary>
        /// <value><c>true</c> if enabled; otherwise, <c>false</c>.</value>
        bool Enabled { get; set; }

        /// <summary>
        /// Gets a value indicating whether this <see cref="IEntity"/> is paused.
        /// </summary>
        /// <value><c>true</c> if paused; otherwise, <c>false</c>.</value>
        bool Paused { get; }
    }
}